.\"
.\" Author: Joao Marcelo Martins <marcelo.martins@rackspace.com> or <btorch@gmail.com>
.\" Copyright (c) 2010-2011 OpenStack Foundation.
.\"
.\" Licensed under the Apache License, Version 2.0 (the "License");
.\" you may not use this file except in compliance with the License.
.\" You may obtain a copy of the License at
.\"
.\"    http://www.apache.org/licenses/LICENSE-2.0
.\"
.\" Unless required by applicable law or agreed to in writing, software
.\" distributed under the License is distributed on an "AS IS" BASIS,
.\" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
.\" implied.
.\" See the License for the specific language governing permissions and
.\" limitations under the License.
.\"
.TH swift-dispersion-report 1 "8/26/2011" "Linux" "OpenStack Swift"

.SH NAME
.LP
.B swift-dispersion-report
\- OpenStack Swift dispersion report

.SH SYNOPSIS
.LP
.B swift-dispersion-report [-d|--debug] [-j|--dump-json] [-p|--partitions] [--container-only|--object-only] [--insecure] [conf_file]

.SH DESCRIPTION
.PP
This is one of the swift-dispersion utilities that is used to evaluate the
overall cluster health. This is accomplished by checking if a set of
deliberately distributed containers and objects are currently in their
proper places within the cluster.

.PP
For instance, a common deployment has three replicas of each object.
The health of that object can be measured by checking if each replica
is in its proper place. If only 2 of the 3 is in place the object's health
can be said to be at 66.66%, where 100% would be perfect.

.PP
Once the \fBswift-dispersion-populate\fR has been used to populate the
dispersion account, one should run the \fBswift-dispersion-report\fR tool
repeatedly for the life of the cluster, in order to check the health of each
of these containers and objects.

.PP
These tools need direct access to the entire cluster and to the ring files.
Installing them on a proxy server will probably do or a box used for swift
administration purposes that also contains the common swift packages and ring.
Both \fBswift-dispersion-populate\fR and \fBswift-dispersion-report\fR use the
same configuration file, /etc/swift/dispersion.conf . The account used by these
tool should be a dedicated account for the dispersion stats and also have admin
privileges.

.SH OPTIONS
.RS 0
.PD 1
.IP "\fB-d, --debug\fR"
output any 404 responses to standard error

.IP "\fB-j, --dump-json\fR"
output dispersion report in json format

.IP "\fB-p, --partitions\fR"
output the partition numbers that have any missing replicas

.IP "\fB--container-only\fR"
Only run the container report

.IP "\fB--object-only\fR"
Only run the object report

.IP "\fB--insecure\fR"
Allow accessing insecure keystone server. The keystone's certificate will not
be verified.

.IP "\fB-P, --policy-name\fR"
Specify storage policy name

.SH CONFIGURATION
.PD 0
Example \fI/etc/swift/dispersion.conf\fR:

.RS 3
.IP "[dispersion]"
.IP "auth_url = https://127.0.0.1:443/auth/v1.0"
.IP "auth_user = dpstats:dpstats"
.IP "auth_key = dpstats"
.IP "swift_dir = /etc/swift"
.IP "# project_name = dpstats"
.IP "# project_domain_name = default"
.IP "# user_domain_name = default"
.IP "# dispersion_coverage = 1.0"
.IP "# retries = 5"
.IP "# concurrency = 25"
.IP "# dump_json = no"
.IP "# endpoint_type = publicURL"
.RE
.PD

.SH EXAMPLE
.PP
.PD 0
$ swift-dispersion-report


.RS 1
.IP "Queried 2622 containers for dispersion reporting, 31s, 0 retries"
.IP "100.00% of container copies found (7866 of 7866)"
.IP "Sample represents 1.00% of the container partition space"

.IP "Queried 2621 objects for dispersion reporting, 22s, 0 retries"
.IP "100.00% of object copies found (7863 of 7863)"
.IP "Sample represents 1.00% of the object partition space"
.RE

.PD


.SH DOCUMENTATION
.LP
More in depth documentation about the swift-dispersion utilities and
also OpenStack Swift as a whole can be found at
.BI https://docs.openstack.org/swift/latest/admin_guide.html#dispersion-report
and
.BI https://docs.openstack.org/swift/latest/


.SH "SEE ALSO"
.BR swift-dispersion-populate(1),
.BR dispersion.conf(5)
